home *** CD-ROM | disk | FTP | other *** search
-
- KERMIT File Transfer Protocol
-
-
- by Larry Jordan
-
-
- KERMIT is a file transfer protocol similar to XMODEM. Like
- XMODEM, KERMIT transfers files between computers in blocks or
- packets and each packet is checked for communication errors. The
- transmitting computer calculates a checksum based on the contents
- of each packet and sends the checksum along with the packet. Like
- XMODEM, the receiving computer calculates its own checksum based
- on its contents of each received packet and compares the value to
- the received checksum. The receiving computer requests a
- retransfer of a packet when the received checksum does not match
- the calculated checksum. Like XMODEM, KERMIT repeats this process
- packet-by-packet until an entire file is transferred or until the
- file transfer is abnormally aborted.
-
- For XMODEM users, this KERMIT block mode transfer sounds all too
- familiar. The users of PC-TALK.III and CROSSTALK XVI have watched
- block counts methodically increment as utility and other assorted
- software moved from a distant TCOMM or RBBS-PC to a local
- floppy disk. These communications users have confidence in files
- transferred using XMODEM because they know Ward Christensen
- designed the protocol to ensure better than 99.6% error-free
- transmission. Many XMODEM enthusiasts will question the need for
- yet another public domain protocol, but there is a legitimate
- need for KERMIT.
-
- The XMODEM protocol requires a full 8 data bits to properly
- transfer a file. The communications software and hardware on both
- ends of a communications link must be set for no parity error-
- checking and 8 data bits. When these parameters are properly set,
- XMODEM simply divides a file into 128 byte (each byte contains 8
- bits) blocks and moves the file one block at a time. There is no
- conversion or translation of the data. The file may contain
- text, data or binary program execution code. WordStar files and
- compiled source code are transferred "as is" and can be used in
- the receiving computer just as they were used in the transmitting
- computer, assuming the computers are compatible.
-
- Unfortunately, the ubiquitous XMODEM cannot perform its majestic
- work with some computer systems. Some computer front-end
- processors can only operate using 7 data bits. Other computers
- that can operate at 8 data bits cough and choke when they receive
- bit patterns that match control characters (characters with ASCII
- values between 0 and 31 and the DEL character--ASCII 127). And
- finally, some modems lock up when they receive bit patterns that
- appear to be command mode signals. To accommodate these cranky
- but useful devices (that are already paid for) it is necessary to
- use an asynchronous file transfer protocol that ensures "error-
- free" transfer while overcoming the equipment limitations.
- Columbia University has developed and released a public domain
- protocol called KERMIT that accomplishes all these objectives.
-
- KERMIT can handle any kind of file and can be used with just
- about every kind of computer. The protocol is capable of
- converting all data into the equivalent of printable 7-bit ASCII
- characters and numbers when necessary. When KERMIT is forced to
- communicate 8-bit binary files, it simply sends the extra bit by
- itself. This "prefixing" or "8-bit quoting" process overcomes the
- 7-bit limitation of some old mainframe front-end processors.
- When Kermit is asked to transmit a control character, it encodes
- the character in a process which produces a printable character
- that can pass through control character sensitive devices without
- a hitch. In both of these cases, the KERMIT on the receiving end
- of the file transfer has to work hard to decode each block of
- data before it is transferred from the KERMIT program to disk.
-
- Because of the relatively slow speed of microprocessors (yes
- the IBM PC is slower than the VAX 11/780) most microcomputer
- KERMIT implementations are written in assembly language.
- Implementations on faster machines are often written in PL/1 or
- some other high-level language with good string handling
- capabilities. The original KERMIT was written in C to operate
- under the UNIX operating system, but other more recent
- implementations are generally written in the most powerful and
- productive language available on a specific computer.
-
- KERMIT has four other advantages over XMODEM. First, it allows
- wildcard file transfers. An asterisk can be used in place of
- several file name letters in order to sequentially and
- automatically transmit many files with common filenames or
- extensions. XMODEM has to be manually restarted at the end of
- each file transfer. Second, minicomputer and mainframe versions
- of KERMIT often include a SERVER mode. After the host KERMIT is
- placed in the SERVER mode, the local KERMIT performs all
- handshaking necessary to both send and receive files--the remote
- host KERMIT is taken over by the local KERMIT and is slave to the
- local KERMIT's wishes. Both the KERMIT wildcard and SERVER
- feature are time savers when several files have to be
- transferred. Third, Kermit saves time during ASCII and executable
- EXE types of file transfers by supporting data compression.
- Characters that are repeated in a file are only sent once for
- each repeat sequence. This often results in a 10 to 30 percent
- faster file transfer for Kermit compared to Xmodem for the same
- file. Finally, Kermit avoids the "deadly embrace" that can
- abnormally abort XMODEM transfers when handshake character
- synchronization are thrown off by bad telephone connections.
-
- Will KERMIT displace XMODEM for error-checked file transfers?
- Not in the near future, but perhaps it will eventually win out as
- the public domain protocol of choice. It is already in use in
- many universities, and several major federal government
- organizations have standardized on the protocol. The National
- Institute of Health in Bethesda has standardized on KERMIT for
- file transfers. THE SOURCE has also implemented KERMIT and
- supports the protocol for their subscribers. Both the BLAST
- and the Microcom Networking Protocol file transfer techniques
- that are being widely touted as the future national standard for
- asynchronous communications have characteristics that prevent
- their use with certain computers without special add-on
- equipment. Kermit does not suffer this limitation.
-
- It is often vitally important to move data from one computer
- to another with assurance that errors are not introduced in the
- data as a result of the transfer process. When such a transfer
- has to be done using the asynchronous method of communications,
- KERMIT is a good candidate for the job. It is available at
- reasonable cost, and it is a proven protocol. If it has not
- already been implemented for a specific hardware configuration,
- it can be implemented quickly because the protocol is well
- documented. The protocol documentation manual comes complete with
- a full source code listing of a UNIX KERMIT written in C.
-
-
- Ordering Information
-
- The KERMIT software is free and is distributed by Columbia
- University. The university is not, however, set up to distribute
- free software on the scale required for KERMIT. Therefore, to
- defray costs for media, printing, postage, labor, and
- computing resources, the university requests a moderate donation
- from sites that request KERMIT directly. The schedule is as
- follows:
-
- Complete KERMIT Distribution $100.00
- (Tape, Users Guide, and Protocol Manual)
-
- Printed Documents $5.00 each
- (Users Guide, Protocol Manual, or Any Source Listing)
-
- Other sites are free to redistribute KERMIT on their own terms,
- and are encouraged to do so, with the following stipulations:
- KERMIT should not be sold for profit; credit should be given
- where it is due; and new material should be sent back to Columbia
- University at the address below so that we can maintain a
- definitive and comprehensive set of KERMIT implementations for
- further distribution.
-
- To order KERMIT from Columbia University, send a letter
- requesting either:
-
- (a) The manuals or source listings you desire
- (specify each one), or
- (b) A 9-track magnetic tape in one of the
- following formats:
-
- System Tape Format Densities
- TOPS-10 BACKUP/Interchange, Unlabeled 800, 1600
- TOPS-20 DUMPER, Unlabeled 800, 1600
- IBM VM/CMS EBCDIC, CMS Format 1600, 6250
- or EBCDIC, OS Standard Label 1600, 6250
- Other ASCII, ANSI Label, Format ``D'' 800, 1600
-
- Specify system, format, and density. One copy of each
- manual is included with the tape. The University supplies
- the tape, packaging, and postage.
-
- Columbia University can only make tapes in the formats listed
- above. They cannot produce floppy disks; bootstrapping procedures
- are provided to allow the microcomputer versions to be downloaded
- from the mainframe for which the tape is produced. The tape
- includes all source programs, documentation, and, when practical,
- binaries or hex.
-
- Send your letter to:
-
- KERMIT Distribution
- Columbia University Center for Computing Activities
- 7th Floor, Watson Laboratory
- 612 West 115th Street
- New York, N.Y. 10025
-
- Please list the machines and operating systems you expect to run
- KERMIT on. You should also specify the tape format or the
- listings desired. Make checks payable to Columbia University
- Center for Computing Activities.
-
-
- ---------------------------------------------------------------
- Larry Jordan coauthored the book
- COMMUNICATIONS and NETWORKING for the IBM PC,
- published by the Robert J. Brady Company.